﻿using System;
using System.Collections.Generic;

namespace FinMkts
{
    /// <summary>
    /// A place where financial instruments are traded.
    /// </summary>
    /// <example>
    /// An exchange such as London Stock Exchange, NYSE, or CME.
    /// An FX market maker such as Deutsche Bank.
    /// An OTC market maker, e.g. City Index or IG Index
    /// </example>
    public class MarketPlace
    {
        public virtual Guid Id { get; set; }

        public virtual string Name { get; set; }

        public virtual string Code { get; set; }

        ///// <summary>
        ///// default trading times for all instruments
        ///// </summary>
        //public TradingTimes TradingTimes { get; set; }

        /// <summary>
        /// The instruments traded in this market place
        /// </summary>
        public virtual ICollection<MarketListing> MarketListings { get; set; }

        /// <summary>
        /// The instruments traded in this market place
        /// </summary>
        public IEnumerable<ContractListing> GetContractListings()
        {
            throw new NotImplementedException();            
        }

        ///// <summary>
        ///// The default fees payed to buy or sell an instrument
        ///// </summary>
        //public IEnumerable<TradingFee> Fees { get; set; }
    }
}